/* 定义常数 */
    .equ    STACK_TOP,  0x20000800
    .text                           /* 预定义指示字，表示从这以后是一个代码区，需要予以汇编 */
    .global _start                  /* 使_start标号可以由其它目标文件使用 */
    .code 16                        /* 指示程序代码使用thumb写成 */
    .syntax unified                 /* 指示使用了统一汇编语言语法 */
    /*.thumbfunc */
    /* .thumbfunc仅在2006Q3~26之前的CodeSourcery工具中需要 */
_start:                             /* 标号，指示程序区入口点 */
    .word STACK_TOP, start          /* 指示字定义MSP起始值为0x2000_0800，并把“start”作为复位向量 */
    .type start, function           /* 宣告start是函数，对于所有处于向量表中异常向量，该宣告都必要，否则汇编器会把向量的LSB清零——在thumb中是不允许的 */
/* 主程序主口 */
start:                              /* 标号，指示复位向量 */
    movs    r0,     #10
    movs    r1,     #0
    /* 计算 10+9+8...+1 */
loop:
    adds    r1,     r0
    subs    r0,     #1
    bne     loop
/* Result is now in R1 */
deadloop:
    b       deadloop
    .end                            /* 指示程序文件结束 */
